home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / include / sun3.md / mon / RCS / eeprom.h,v < prev    next >
Encoding:
Text File  |  1989-07-14  |  9.9 KB  |  330 lines

  1. head     1.3;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.3
  10. date     89.07.14.09.23.23;  author rab;  state Exp;
  11. branches ;
  12. next     1.2;
  13.  
  14. 1.2
  15. date     89.06.16.13.17.46;  author rab;  state Exp;
  16. branches ;
  17. next     1.1;
  18.  
  19. 1.1
  20. date     89.03.27.17.04.26;  author rab;  state Exp;
  21. branches ;
  22. next     ;
  23.  
  24.  
  25. desc
  26. @@
  27.  
  28.  
  29. 1.3
  30. log
  31. @*** empty log message ***
  32. @
  33. text
  34. @/*
  35.  * eeprom.h
  36.  *
  37.  * @@(#)eeprom.h 1.18 88/02/08 SMI
  38.  * Copyright (c) 1986, 1987 Sun Microsystems, Inc.
  39.  */
  40.  
  41. /*
  42.  * This structure defines the contents to the EEPROM for the Sun-3.
  43.  * It is divided into a diagnostic section, a reserved section,
  44.  * a ROM section, and a software section (defined in detail
  45.  * elsewhere).
  46.  */
  47. #include <mon/keyboard.h>
  48. #define MAX_SLOTS    12
  49. #define CONFIG_SIZE    16    /* bytes of config data for board slot */
  50.  
  51. #ifndef _EPROM_
  52. #define _EPROM_
  53.  
  54. struct    eeprom {
  55.     struct    ee_diag {        /* diagnostic's area of EEPROM */
  56. /* 0x000 */    u_int    eed_test;    /* diagnostic test write area */
  57. /* 0x004 */    u_short    eed_wrcnt[3];    /* diag area write count (3 copies) */
  58.         short    eed_nu1;    /* not used */
  59.  
  60. /* 0x00c */    u_char    eed_chksum[3];    /* diag area checksum (3 copies) */
  61.         char    eed_nu2;    /* not used */
  62. /* 0x010 */    time_t    eed_hwupdate;    /* date of last hardware update */
  63.  
  64. /* 0x014 */    char    eed_memsize;    /* MB's of memory in system */
  65. /* 0x015 */    char    eed_memtest;    /* MB's of memory to test on powerup */
  66.  
  67. /* 0x016 */    char    eed_scrsize;    /* screen size, in pixels */
  68. #define    EED_SCR_1152X900    0x00
  69. #define    EED_SCR_1024X1024    0x12
  70. #define EED_SCR_1600X1280       0x13    /* new for hi rez */
  71. #define EED_SCR_1440X1440       0x14
  72. #define EED_SCR_640X480         0x15
  73.  
  74. /* 0x017 */    char    eed_dogaction;    /* action to take on watchdog reset */
  75. #define    EED_DOG_MONITOR        0x00    /* return to monitor command level */
  76. #define    EED_DOG_REBOOT        0x12    /* perform power on reset and reboot */
  77.  
  78. /* 0x018 */    char    eed_defboot;    /* default boot? */
  79. #define    EED_DEFBOOT        0x00    /* do default boot */
  80. #define    EED_NODEFBOOT        0x12    /* don't do default boot */
  81.  
  82. /* 0x019 */    char    eed_bootdev[2];    /* name of boot device (e.g. xy, ie) */
  83.  
  84. /* 0x01b */    char    eed_bootctrl;    /* controller number to boot from */
  85. /* 0x01c */    char    eed_bootunit;    /* unit number to boot from */
  86. /* 0x01d */    char    eed_bootpart;    /* partition number to boot from */
  87.  
  88. /* 0x01e */    char    eed_kbdtype;    /* non-Sun keyboard type - for OEM's */
  89. #define    EED_KBD_SUN    0        /* one of the Sun keyboards */
  90.  
  91. /* 0x01f */    char    eed_console;    /* device to use for console */
  92. #define    EED_CONS_BW    0x00        /* use b&w monitor for console */
  93. #define    EED_CONS_TTYA    0x10        /* use tty A port for console */
  94. #define    EED_CONS_TTYB    0x11        /* use tty B port for console */
  95. #define    EED_CONS_COLOR    0x12        /* use color monitor for console */
  96. #define EED_CONS_P4    0x20        /* use the P4 monitor for console */
  97.  
  98. /* 0x020 */    char    eed_showlogo;    /* display Sun logo? */
  99. #define    EED_LOGO    0x00
  100. #define    EED_NOLOGO    0x12
  101.  
  102. /* 0x021 */    char    eed_keyclick;    /* keyboard click? */
  103. #define    EED_NOKEYCLICK    0x00
  104. #define    EED_KEYCLICK    0x12
  105.  
  106. /* 0x022 */    char    eed_diagdev[2]; /* name of boot device (e.g. xy, ie) */
  107. /* 0x024 */    char    eed_diagctrl;   /* controller number to boot from */
  108. /* 0x025 */    char    eed_diagunit;   /* unit number to boot from */
  109. /* 0x026 */    char    eed_diagpart;   /* partition number to boot from */
  110. /* 0x027 */    char    eed_diagnu;     /* not used */
  111. /* 0x028 */    char    eed_diagpath[40]; /* boot path of diagnostic */
  112. #define EED_TERM_34x80    00
  113. #define EED_TERM_48x120 0x12    /* for large scrn size 1600x1280 */
  114. /* 0x050 */     char    eed_colsize;   /* number of columns */
  115. /* 0x051 */     char    eed_rowsize;   /* number of rows */
  116.  
  117. /* 0x052 */    char    eed_nu5[6];    /* not used */
  118.  
  119. /* 0x058 */    struct    eed_tty_def {    /* tty port defaults */
  120.             char    eet_sel_baud;    /* user specifies baud rate */
  121. #define    EET_DEFBAUD    0x00
  122. #define    EET_SELBAUD    0x12
  123.             u_char    eet_hi_baud;    /* upper byte of baud rate */
  124.             u_char    eet_lo_baud;    /* lower byte of baud rate */
  125.             u_char    eet_rtsdtr;    /* flag for dtr and rts */
  126. #define NO_RTSDTR    0x12
  127.             char    eet_unused[4];
  128.         } eed_ttya_def, eed_ttyb_def;
  129. /* 0x068 */    char    eed_banner[80];    /* banner if not displaying Sun logo */
  130.             /* last two chars must be \r\n (XXX - why not \0?) */
  131.  
  132. /* 0x0b8 */    u_short    eed_pattern;    /* test pattern - must contain 0xAA55 */
  133. /* 0x0ba */       short   eed_nu6;        /* not used */
  134. /* 0x0bc */    struct    eed_conf {    /* system configuration, by slot */
  135.             union {
  136.             struct    eec_gen {
  137.                 u_char    eec_type;    /* board type code */
  138.                 char    eec_size[CONFIG_SIZE-1];
  139.             } eec_gen;
  140.  
  141.             char    conf_byte[CONFIG_SIZE];
  142.             u_char    eec_type;    /* type of this board */
  143. #define    EEC_TYPE_NONE    0            /* no board this slot */
  144. #define    EEC_TYPE_CPU    0x01            /* cpu */
  145.             struct    eec_cpu {
  146.                 u_char    eec_type;    /* type of this board */
  147.                 u_char    eec_cpu_memsize; /* MB's on cpu */
  148.                 int    eec_cpu_unused:6;
  149.                 int    eec_cpu_dcp:1;        /* dcp? */
  150.                 int    eec_cpu_68881:1;    /* 68881? */
  151.                 u_char    eec_cpu_cachesize; /* KB's in cache */
  152.             } eec_cpu;
  153.             struct    eec_cpu_alt {
  154.                 u_char    eec_type;    /* type of this board */
  155.                 u_char    memsize;    /* MB's on cpu */
  156.                 u_char    option;        /* option flags */
  157. #define CPU_HAS_DCP    0x02
  158. #define CPU_HAS_68881    0x01
  159.                 u_char    cachesize;    /* KB's in cache */
  160.             } eec_cpu_alt;
  161.  
  162. #define    EEC_TYPE_MEM    0x02            /* memory board */
  163.             struct    eec_mem {
  164.                 u_char    eec_type;    /* type of this board */
  165.                 u_char    eec_mem_size;    /* MB's on card */
  166.             } eec_mem;
  167.  
  168. #define    EEC_TYPE_COLOR    0x03            /* color frame buffer */
  169.             struct    eec_color {
  170.                 u_char    eec_type;    /* type of this board */
  171.                 char    eec_color_type;
  172. #define    EEC_COLOR_TYPE_CG2    2    /* cg2 color board */
  173. #define    EEC_COLOR_TYPE_CG3    3    /* cg3 color board */
  174.             } eec_color;
  175.  
  176. #define    EEC_TYPE_BW    0x04            /* b&w frame buffer */
  177.  
  178. #define    EEC_TYPE_FPA    0x05            /* floating point accelerator */
  179.  
  180. #define    EEC_TYPE_DISK    0x06            /* SMD disk controller */
  181.             struct    eec_disk {
  182.                 u_char    eec_type;    /* type of this board */
  183.                 char    eec_disk_type;    /* controller type */
  184. #define EEC_DISK_TYPE_X450    1
  185. #define EEC_DISK_TYPE_X451    2
  186.                 char    eec_disk_ctlr;    /* controller number */
  187.                 char    eec_disk_disks;    /* number of disks */
  188.                 char    eec_disk_cap[4];    /* capacity */
  189. #define EEC_DISK_NONE    0
  190. #define EEC_DISK_130    1
  191. #define EEC_DISK_280    2
  192. #define EEC_DISK_380    3
  193. #define EEC_DISK_575    4
  194.             } eec_disk;
  195.  
  196. #define    EEC_TYPE_TAPE    0x07            /* 1/2" tape controller */
  197.             struct eec_tape {
  198.                 u_char    eec_type;    /* type of this board */
  199.                 char    eec_tape_type;    /* controller type */
  200. #define    EEC_TAPE_TYPE_XT    1    /* Xylogics 472 */
  201. #define    EEC_TAPE_TYPE_MT    2    /* TapeMaster */
  202.                 char    eec_tape_ctlr;    /* controller number */
  203.                 char    eec_tape_drives;/* number of drives */
  204.             } eec_tape;
  205.  
  206. #define    EEC_TYPE_ETHER    0x08            /* Ethernet controller */
  207.  
  208. #define    EEC_TYPE_TTY    0x09            /* terminal multiplexer */
  209.             struct eec_tty {
  210.                 u_char    eec_type;    /* type of this board */
  211.                 char    eec_tty_lines;    /* number of lines */
  212. #define MAX_TTY_LINES    16
  213.                 char    manufacturer;    /* code for maker */
  214. #define EEC_TTY_UNKNOWN    0
  215. #define EEC_TTY_SYSTECH    1
  216.             } eec_tty;
  217.  
  218. #define    EEC_TYPE_GP    0x0a            /* graphics processor/buffer */
  219.  
  220. #define    EEC_TYPE_DCP    0x0b            /* DCP ??? XXX */
  221.  
  222. #define    EEC_TYPE_SCSI    0x0c            /* SCSI controller */
  223.             struct    eec_scsi {
  224.                 u_char    eec_type;    /* type of this board */
  225.                 char    eec_scsi_type;    /* host adaptor type */
  226. #define EEC_SCSI_SUN2    2
  227. #define EEC_SCSI_SUN3    3
  228.                 char    eec_scsi_tapes;    /* number of tapes */
  229.                 char    eec_scsi_disks;    /* number of disks */
  230.                 char    eec_scsi_tape_type;
  231. #define EEC_SCSI_SYSG    1
  232. #define EEC_SCSI_MT02    2
  233.                 char    eec_scsi_disk_type;
  234. #define EEC_SCSI_MD21    1
  235. #define EEC_SCSI_ADAPT    2
  236.                 char    eec_scsi_driv_code[2];
  237. #define EEC_SCSI_D71    1
  238. #define EEC_SCSI_D141    2
  239.             } eec_scsi;
  240. #define EEC_TYPE_IPC    0x0d
  241.  
  242. #define EEC_TYPE_GB    0x0e
  243.  
  244. #define EEC_TYPE_SCSI375    0x0f
  245.  
  246. #define EEC_TYPE_MAPKIT    0x10
  247.             struct    eec_mapkit {
  248.                 u_char    eec_type;    /* type of this board */
  249.                 char    eec_mapkit_hw;    /* whether INI */
  250. #define EEC_TYPE_MAPKIT_INI    1
  251.             } eec_mapkit;
  252.  
  253. #define EEC_TYPE_CHANNEL    0x11
  254.  
  255. #define    EEC_TYPE_END    0xff            /* end of card cage */
  256.             } eec_un;
  257.         } eed_conf[MAX_SLOTS+1];
  258. #define EEPROM_TABLE  0x58                    /* 1 indicates alternate key table. */
  259. /* 0x18C */     u_char  which_kbt;      /* which keytable? */
  260. /* 0x18D */     u_char  ee_kb_type;     /* which type for a specific kbrd*/
  261. /* 0x18E */     u_char  ee_kb_id;      /* keyboard id in case of EEPROM table */
  262. #define EEPROM_LOGO 0x12
  263. /* 0x18F */     u_char  otherlogo;      /* True if eeprom logo  needed */
  264. /* 0x190 */     struct keymap ee_keytab_lc[1];
  265. /* 0x210 */     struct keymap ee_keytab_uc[1];
  266. /* 0x290 */     u_char    ee_logo[64][8];   /* A 64X64 bit space for custom/OEM                                              * designed logo icon */
  267. /* 0x490 */    char    eed_resv[0x500-0x490];    /* reserved */
  268.     } ee_diag;
  269.  
  270.     struct    ee_resv {        /* reserved area of EEPROM */
  271. /* 0x500 */    u_short    eev_wrcnt[3];    /* write count (3 copies) */
  272.         short    eev_nu1;    /* not used */
  273. /* 0x508 */    u_char    eev_chksum[3];    /* reserved area checksum (3 copies) */
  274.         char    eev_nu2;    /* not used */
  275. /* 0x50c */    char    eev_resv[0x600-0x50c];
  276.     } ee_resv;
  277.  
  278.     struct    ee_rom {        /* ROM area of EEPROM */
  279. /* 0x600 */    u_short    eer_wrcnt[3];    /* write count (3 copies) */
  280.         short    eer_nu1;    /* not used */
  281. /* 0x608 */    u_char    eer_chksum[3];    /* ROM area checksum (3 copies) */
  282.         char    eer_nu2;    /* not used */
  283. /* 0x60c */    char    eer_resv[0x700-0x60c];
  284.     } ee_rom;
  285.  
  286.     /*
  287.      * The following area is reserved for software (i.e. UNIX).
  288.      * The actual contents of this area are defined elsewhere.
  289.      */
  290. #ifndef EE_SOFT_DEFINED
  291.     struct    ee_softresv {        /* software area of EEPROM */
  292. /* 0x700 */    u_short    ees_wrcnt[3];    /* write count (3 copies) */
  293.         short    ees_nu1;    /* not used */
  294. /* 0x708 */    u_char    ees_chksum[3];    /* software area checksum (3 copies) */
  295.         char    ees_nu2;    /* not used */
  296. /* 0x70c */    char    ees_resv[0x800-0x70c];
  297.     } ee_soft;
  298. #else
  299.     struct    ee_soft ee_soft;
  300. #endif
  301. };
  302. #endif /* !_EPROM_ */
  303.  
  304. @
  305.  
  306.  
  307. 1.2
  308. log
  309. @*** empty log message ***
  310. @
  311. text
  312. @d4 1
  313. a4 1
  314.  * @@(#)eeprom.h 1.18 88/02/08 SMI  
  315. @
  316.  
  317.  
  318. 1.1
  319. log
  320. @Initial revision
  321. @
  322. text
  323. @d216 1
  324. a216 1
  325.                 char    eec_mapkit_hw    /* whether INI */
  326. d269 1
  327. a269 1
  328. #endif !_EPROM_
  329. @
  330.